package com.kaifamiao.date1112;

/**
 * 1、实现 java.lang.Cloneable 表示该类的实例是可以被克隆的
 * 2、通过重写从 java.lang.Object 类继承的 clone 方法来实现克隆操作
 */
public class Pigeon implements Cloneable {

	private String name;
	private int age;
	
	public Pigeon(String name, int age) {
		super();
		this.setName( name );
		this.setAge( age );
	}

	@Override
	public Object clone() throws CloneNotSupportedException {
		// 一定要调用父类Object中的clone方法完成克隆操作
		Object o = super.clone() ;
		// 返回克隆后的对象
		return o ;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		if( name == null || name.trim().isEmpty() ) {
			throw new RuntimeException( "名字不可以为空哦" );
		}
		// 若名字非空则赋值
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		if( age < 0 ) {
			this.age = 0 ;
			return ;
		}
		
		if( age > 20 ) {
			throw new RuntimeException( "鸽子哪有活这么久的" );
		}
		// 如果年龄符合正常的鸽子寿命则赋值
		this.age = age;
	}

}
